রেজিস্টার

তথ্য ও যোগাযোগ প্রযুক্তি - সংখ্যা পদ্ধতি ও ডিজিটাল ডিভাইস - রেজিস্টার

আমরা এতক্ষণ পর্যন্ত যে কয়টি সার্কিট তৈরি করতে শিখেছি তার প্রত্যেকটিরই একটি বিশেষত্ব রয়েছে, সেটি হচ্ছে যতক্ষণ ইনপুটে সঠিক সিগন্যাল দেওয়া হবে ততক্ষণ আউটপুটে সঠিক সিগন্যাল পাব। ইনপুটে সঠিক সিগন্যাল না থাকলে আউটপুটে কোনো বিশ্বাসযোগ্য মান থাকবে না।

কিন্তু আমাদের অনেক সময়েই একটি সার্কিটে কোনো একটি মান সংরক্ষণ করতে হয়, আমরা সেটাকে মেমোরি বলে থাকি। এখন আমরা এ ধরনের একটি সার্কিটের কথা বলব যেখানে একটি ইনপুট দিয়ে সেই ইনপুটের মানটিকে সংরক্ষণ করা সম্ভব। এই ধরনের সার্কিটকে বলে ফ্লিপফ্লপ। 3.21 চিত্রে একটি ফ্লিপফ্লপের সার্কিট দেখানো হলো। এখানে Q একটি আউটপুট এবং Q তার পূরক। এবারে আমরা এই ফ্লিপ ফ্লপের সত্যক সারণী বা ট্রুথ টেবিলটি লেখার চেষ্টা করি। NAND গেটের জন্য যেকোনো একটি ইনপুট ০ হলে আউটপুট 1 হয়। তাই ইনপুট x এবং y দুটোই যদি হয় (অন্য ইনপুটের মান যাই হোক না কেন) দুটো NAND গেটের আউটপুট Q এবং Q দুটোর মানই হবে 1। কিন্তু আমরা যেহেতু একটিকে Q অন্যটিকে হিসেবে অভিহিত করছি, অর্থাৎ একটি 1 হলে অন্যটিকে অবশ্যই ০ হতে হবে, কাজেই দুটোই 1 হওয়া সঠিক নয়। তাই আমরা ধরে নেব ইনপুট x এবং y দুটোই কখনো একসাথে ০ করা হৰে না, অর্থাৎ এটি গ্রহণযোগ্য ইনপুট নয়। তবে x = 0 এবং y = 1 হলে Q এবং Q আউটপুট দুটি যুক্তিসঙ্গতভাৰে যথাক্ৰমে 1 এবং 0 হবে। আবার ইনপুট x = 1 এবং y = 0 হলে এর বিপরীত ব্যাপারটি ঘটে, অর্থাৎ তখন Q = 0 এবং Q = 1 পাওয়া যায়। তোমরা অবশ্যই এটি পরীক্ষা করে নিশ্চিত হয়ে নাও । তবে দুটোই 1 হলে সবচেয়ে চমকপ্রদ বিষয়টি ঘটে। তোমরা নিজেরাই পরীক্ষা করে দেখতে পারো যে তাহলে Q এবং Q এর আউটপুট যথাক্রমে 1 এবং 0 অথবা 0 এবং 1 এই দুটোই হতে পারে। এটি গাণিতিক কোনো ব্যাপার নয়, পুরোপুরি বাস্তব একটি সার্কিট, আমরা তাহলে কোন আউটপুটটি পাব? উত্তরটি কিন্তু বেশ সহজ। এটি নির্ভর করে x = 1 এবং y = 1 অবস্থাটির আগের অবস্থা কী। যদি ঠিক আগের অবস্থা x = 0 এবং y = 1 হয়ে থাকে তাহলে Q হবে 1 (এবং Q হবে তার বিপরীত অর্থাৎ D) এবং যদি আগের অবস্থা x = 1 এবং y = 0 হয়ে থাকে তাহলে Q হবে (এবং Q হবে তার বিপরীত অর্থাৎ 1) খ টেবিলে সেটা এভাবে দেখানো যেতে পারে :

আমরা ইচ্ছা করলে এভাবেও বলতে পারি, x এবং y দুটোকেই 1 করে দিয়ে আমরা x এর মান Q এ এবং এর মান Q এর মাঝে সংরক্ষণ করে রেখেছি। কাজেই এই স্লিপাম্প ব্যবহার করার সাধারণ নিয়ম হচ্ছে x এবং y দুটোকে সবসময়েই 1 হিসেবে রাখা এবং প্রয়োজন অনুযায়ী শুধু ক্ষুদ্র একটি সময়ের জন্য : অথবা y কে করা। x কে O করা হচ্ছে Q হবে 1 এবং y কে 0 করা হচ্ছে Q হবে (এবং Q হবে Q এর বিপরীত)।

এটি সাধারণত কীভাবে করা হয় সেটি 3.22 চিত্রের সার্কিটে দেখানো হলো। D ইনপুটটি x এবং y এর মাঝে সরাসরি না দিয়ে দুটি বাড়তি NAND গেট দিয়ে দেয়া হচ্ছে। নিচের NAND গেটের আগে একটি ইনভার্টার দেওয়ার কারণে সবসময়েই x এবং y একটি 1 অন্যটি তার বিপরীত ০ সিগন্যাল পেয়ে থাকে। তবে যতক্ষণ CLK ইনপুটটি ০ থাকবে দিয়ে x এবং y ততক্ষণ D ইনপুটের মান এই বাড়তি NAND গেটের ভেতর  পর্যন্ত পৌঁছাতে পারে না। ইনপুটের মান যাই থাকুক না কেন, CLK ইনপুটটি D হলে x এবং v ইনপুটের মান সবসময় 1 থাকবে। D ইনপুটের মান ফ্লিপফ্লপে লোড করতে হলে অল্প সময়ের জন্য CLK ইনপুটটির মান 1 করতে হয়। মানটি লোড করার পর সেটি আবার 0 করে ফেলা হয়। 

ধরা যাক D এর মান 1 করে একটি ক্ষুদ্র সময়ের জন্য CLK এর মান 1 করা হলো (ইলেক্ট্রনিক্সের ভাষায় *একটি CLK পালস দেওয়া হলো)। তাহলে সেই পালসের সময়টুকুতে x হবে D, y হবে 1 কাজেই Q হবে 1 (স্বাভাবিকভাবে Q-এর মান হবে Q-এর বিপরীত, অর্থাৎ 0) পালসটুকু শেষ হওয়ার পর যেহেতু x এবং y দুটোর মানই আবার 1 হয়ে যাবে, তাই স্লিপফ্লপের নিয়ম অনুযায়ী Q-এর মান 1 হিসেবে সংরক্ষিত থেকে যাবে। অর্থাৎ মনে হবে D তে যে 1 মান দেওয়া হয়েছে সেটি CLK পালস দিয়ে Q তে লোড করা হয়েছে। ঠিক একইভাবে D তে o দিয়ে একটি CLK পালস দেওয়া হলে Q হবে । এবং মনে হবে D-এর ও সিগন্যালটি Q তে লোভ করা হয়েছে।

এই ধরনের সার্কিটে নাম DQ । 3.23 চিত্রে বিষয়টি ব্যাখ্যা করা হয়েছে, সহজ করার জন্য Q দেখানো হয়নি। এক কথায় বলা যায়, D এর মানটি একটি পালস দিয়ে Q-এ নিয়ে আসা হয়, মানটি সেখানে সংরক্ষিত থাকে, D-এর মান পরিবর্তন করা হলেও Q-এর মানের পরিবর্তন হয় না। শুধু আরেকটি CLK পালস দিয়ে D-এর নতুন মান Q তে লোড করা যাবে। এই ধারণাটি নিয়ে তোমাদের মাঝে যেন কোনো

চিত্র 3.23 : এখানে D থেকে Q তে 1 লোড করার পদ্ধতিটি দেখানো হচ্ছে। শুরুতে D তে 1 দেওয়ার পরও Q- এর মানের কোনো পরিবর্তন নেই। পরের ধাপে যখন CLK-এ একটি পালস (1) দেওয়া হলো তখন D-এর মানটি Q তে চলে গেল। শেষ ধাপে CIK-এর মান আবার o করার পর D তে যে মানই দেয়া হোক Q-এর মানের কোনো পরিবর্তন হবে না।

বিভ্রান্তি না থাকে কারণ এর পরের সব কয়টি সার্কিটে আমরা DQ ফ্লিপফ্লপ ব্যবহার করব।

নিজে কর : দুটি NAND গেট ব্যবহার না করে দুটি NOR গেট ব্যবহার করে একটি ফ্লিপফ্লপ তৈরি করা হলে তার ট্রুথ টেবিল কেমন হবে?

নিজে কর : পাশের ছবিতে দেখানো গেটটির ইনপুট ০ হলে আউটপুট কী হবে? ইনপুট 1 হলে আউটপুট কী হবে? (উল্লেখ্য একটি গেটের ইনপুটে সিগন্যাল দেওয়ার সাথে সাথে আউটপুটে মান পাওয়া যায় না, আউটপুটে মান আসতে প্রায় 10ns-এর মতো সময় দরকার হয়। এই পদ্ধতিতে একাধিক গেট ব্যবহার করে খুব সহজে CLK তৈরি করা যায়।)

প্যারালাল লোড রেজিস্টার

3.24 চিত্রে চারটি DQ ফ্লিপফ্লপ পাশাপাশি বসিয়ে একটি সার্কিট তৈরি করা হয়েছে। যেহেতু একই সাথে চারটি ফ্লিপক্ষপে CLK পালস দেওয়া হয়, তাই এই চারটি ফ্লিপফ্লপ একই সাথে চার বিট তথ্য সংরক্ষণ করতে পারে। যদি Ao, A1, A2 এবং A3 তে চার বিট তথ্য দেওয়া হয় তাহলে সেই চার বিট তথ্য CLK পালস দেওয়ার সাথে সাথে lo, 11, 12 এবং 13 তে সংরক্ষিত হয়ে যাবে। তখন A1, A2 এবং A3-এর বিটগুলো পরিবর্তিত হলেও 10, 11, 12 এবং 13 তে সংরক্ষিত তথ্যের কোনো পরিবর্তন হবে না। শুধু নতুন একটি CLK পালস দেওয়া হলেই পরিবর্তিত Ao, A1, A2 এবং A3 এর মান lo, I1, I2 এবং 13 তে লোড হবে। ফ্লিপফ্লপের সংখ্যা বাড়িয়ে পুরো এক বাইট কিংবা কয়েক বাইট তথ্য একসাথে রাখা সম্ভব।

এই ধরনের সার্কিটকে প্যারালাল লোড রেজিস্টার বলে।

শিফট রেজিস্টার

প্যারালাল লোড রেজিস্টারে DQ ফ্লিপফ্লপগুলোতে সিগন্যাল একই সাথে লোড করা হয়। ভিন্ন আরেক ধরনের ফ্লিপফ্লপ আছে যেখানে ফ্লিপফ্লপগুলোর আউটপুট Q অন্যটির ইনপুট D-এর সাথে সংযুক্ত করে প্রতি ক্লক পালসে এক ফ্লিপফ্লপের সিগন্যাল পরের ফ্লিপফ্লপে পাঠানো যায়। এই ধরনের রেজিস্টারকে শিফট রেজিস্টার বলে। শিফট রেজিস্টারের ইনপুটে সিরিয়াল ডেটা দিয়ে আউটপুটে প্যারালাল ডাটা পাওয়া যায়৷ 3.25 চিত্রে একটি শিফট রেজিস্টারের সার্কিট দেখানো হলো।

Content added By

Promotion

Promotion